package com.company;
/**
 *变量作用域
 * 变量的范围是程序中该变量可以被引用的部分。
 *
 * 方法内定义的变量被称为局部变量。
 *
 * 局部变量的作用范围从声明开始，直到包含它的块结束。
 *
 * 局部变量必须声明才可以使用。
 *
 * 方法的参数范围涵盖整个方法。参数实际上是一个局部变量。
 *
 * for循环的初始化部分声明的变量，其作用范围在整个循环。
 *
 * 但循环体内声明的变量其适用范围是从它声明到循环体结束。它包含如下所示的变量声明：
 */
public class TestPassByValue {
    public static void main(String[] args) {
        int num1 = 1;
        int num2 = 2;

        System.out.println("交换前 num1 的值为：" +
                num1 + " ，num2 的值为：" + num2);

        // 调用swap方法
        swap(num1, num2);
        System.out.println("交换后 num1 的值为：" +
                num1 + " ，num2 的值为：" + num2);
    }
    /** 交换两个变量的方法 */
    public static void swap(int n1, int n2) {
        System.out.println("\t进入 swap 方法");
        System.out.println("\t\t交换前 n1 的值为：" + n1
                + "，n2 的值：" + n2);
        // 交换 n1 与 n2的值
        int temp = n1;
        n1 = n2;
        n2 = temp;

        System.out.println("\t\t交换后 n1 的值为 " + n1
                + "，n2 的值：" + n2);
    }
    public static double max(double num1, double num2) {
        if (num1 > num2)
            return num1;
        else
            return num2;
    }

    public static int max(int num1, int num2) {
        if (num1 > num2)
            return num1;
        else
            return num2;
    }
}
